Q Script.h Ç…éüÇÃêÈåæÇ™Ç†ÇËÇ‹Ç∑ÅB
extern PASCAL Boolean IsCmdChar(const EventRecord *eventRecord, short test) FOURWORDINLINE(0x2F3C, 0x8206, 0xFFD0, 0xA8B5);
DZÇÃä÷êîÇÃê‡ñæÇä‹ÇfiÉhÉLÉÖÉÅÉìÉgÇå©Ç¬ÇØÇÈDZÇΔÇ™Ç≈Ç´Ç‹ÇπÇÒÅBǪÇÃÇÊǧǻÉhÉLÉÖÉÅÉìÉgÇÕdžÇËÇ‹Ç∑Ç©ÅBLJǵéÑÇ™çlǶǃǢÇÈÇÊǧDžìÆçÏÇ∑ÇÈä÷êîÇ»ÇÁÇ∫Ç–égÇ¢ÇΩÇ¢ÇÃÇ≈Ç∑Ç™ÅB
A Ç≤éwìEdžÇËÇ™ÇΔǧÇ≤ǥǢNjǵÇΩÅBDZÇÃÉãÅ[É`ÉìÇÕ System 7 Ç≈ì±ì¸Ç≥ÇÍÇΩLJÇÃÇ≈Ç∑ÅBDZDZÇ≈ÉãÅ[É`ÉìÇÃê‡ñæÇÇ¢ÇΩǵNjÇ∑ÅB
FUNCTION IsCmdChar(keyEvent: EventRecord; testChar: INTEGER): BOOLEAN;
DZÇÃä÷êîÇÕÅAëºÇÃÉLÅ[ÇΔëgÇ›çáÇÌÇπǃ command ÉLÅ[Ç™âüÇ≥ÇÍÇΩǩǫǧǩÇÉeÉXÉgÇ∑ÇÈLJÇÃÇ≈Ç∑ÅBcommand ÉLÅ[ÇâüÇ∑/ó£Ç∑ëÄçÏÇ‚ shift ÉLÅ[ÇâüÇ∑/ó£Ç∑ëÄçÏÇΔëgÇ›çáÇÌÇπÇΩÇΔÇ´Ç…ÅAtestChar Ç™ê∂ê¨Ç≥ÇÍÇ‹Ç∑ÅBtestChar Ç…ÉVÉtÉgï∂éöÇ™éwíËÇ≥ÇÍÇÈDZÇΔǙdžÇÈÉàÅ[ÉçÉbÉpÇÃÉLÅ[É{Å[ÉhÇ‚ÅAcommand ÉLÅ[ÇΔìØéûÇ≈Ç»ÇØÇÍÇŒê∂ê¨Ç≥ÇÍǻǢ testChar ǙdžÇÈîÒÉçÅ[É}ÉìÉLÅ[É{Å[ÉhDžLJëŒâûǵNjÇ∑ÅBç≈LJï÷óòÇ»égÇ¢ï˚ÇÕ command ÉLÅ[ÇΔÉsÉäÉIÉh (.) ÇÃëgÇ›çáÇÌÇπÇÃÉeÉXÉgÇ≈Ç∑Ç™ÅAcommand ÉLÅ[ÇΔdžÇÁljÇÈï∂éöÇÃëgÇ›çáÇÌÇπÇÉeÉXÉgÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
åƒÇ—èoǵë§ÇÕ command ÉLÅ[Ç™âüÇ≥ÇÍÇΩèÛë‘Ç≈ìæÇÁÇÍÇΩÉLÅ[ÇÃâüâ∫Ç‹ÇΩÇÕÉäÉsÅ[ÉgÉLÅ[ÇÃÉCÉxÉìÉgÉåÉRÅ[ÉhÇìnǵNjÇ∑ÅBÉeÉXÉgëŒè€ÇÃï∂éö (ó·Ç¶ÇŒÅu.Åv) LJìnǵNjÇ∑ÅBä÷êîÇÕåªç›ÇÃèCè¸ÉLÅ[Ç≈ testChar Ç™ê∂ê¨Ç≥ÇÍÇÈèÍçáÇÕê^Çï‘ǵNjÇ∑ÅBÇ‹ÇΩÅAåªç›ÇÃèCè¸ÉLÅ[ÉrÉbÉgÇ…ëŒÇµÇƒéüÇÃÇ¢Ç∏ÇÍǩNjÇΩÇÕóºï˚ÇÃïœçXÇâ¡Ç¶ÇΩåãâ testChar Ç™ê∂ê¨Ç≥ÇÍÇÈèÍçáLJê^Çï‘ǵNjÇ∑ÅB
à»â∫ÇÕÅADZÇÃä÷êîÇÃégÇ¢ï˚ÇÃÉTÉìÉvÉãÇ≈Ç∑ÅB
OSErr HandleKeys (EventRecord *eventPtr) { OSErr err = noErr; Å@ if (eventPtr->modifiers & cmdKey) { if (IsCmdChar (eventPtr, '.')) { gStop = true; } else { err = DispatchMenuChoice (MenuKey (eventPtr->message & charCodeMask)); } } Å@ return err; }
íçà”: IsCmdChar ä÷êîÇ™ true ÇΔǵǃï‘Ç∑ílÇÕ 0xFF Ç≈Ç∑ÅBǬNjÇËÅAIsCmdChar ÇÕ 1 Çï‘Ç≥ǻǢÇÃÇ≈ÅA0xFF Çï‘Ç≥ÇÍǃLJÉRÅ[ÉhÇ™ê≥ǵÇ≠ìÆçÏÇ∑ÇÈÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ÅBäJî≠ä¬ã´ÇÃÅutrueÅvÇÃíËã`Ç™ 0xFF Ç≈džÇÈDZÇΔÇ™ÇÌǩǡǃǢÇÈèÍçáà»äOÇÕÅAǪÇÃíËã`ÇǪÇÃNjNjégǡǃÇÕÇ¢ÇØÇ‹ÇπÇÒÅBMacTypes.h Ç≈ÇÕ true ÇÕ 1 Ç…íËã`Ç≥ÇÍǃǢNjÇ∑ÅBDZÇÃèÍçáèÌÇ…åãâ ÇÕãUDžǻǡǃǵNjǢNjÇ∑ÅB